/*
 * Copyright (c) 2006 Washington University in St. Louis.
 * All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 * - Redistributions of source code must retain the above copyright
 *   notice, this list of conditions and the following disclaimer.
 * - Redistributions in binary form must reproduce the above copyright
 *   notice, this list of conditions and the following disclaimer in the
 *   documentation and/or other materials provided with the
 *   distribution.
 * - Neither the name of the copyright holders nor the names of
 *   its contributors may be used to endorse or promote products derived
 *   from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 * FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
 * THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
 * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 * OF THE POSSIBILITY OF SUCH DAMAGE.
 */

/**
 * @author Kevin Klues (klueska@cs.wustl.edu)
 * @version $Revision: 1.3 $
 * @date $Date: 2010-06-29 22:07:42 $
 */

package net.tinyos.tools;

import java.sql.*;
import org.sqlite.JDBC;
import java.text.*;
import java.util.*;

import net.tinyos.message.*;
import net.tinyos.packet.*;
import net.tinyos.util.*;
import com.mysql.jdbc.Driver;
public class createTable1 implements MessageListener {

	private MoteIF moteIF;
	private  int USBnumStatic=0;
	private int hum,tem,light; 

		int usbnumber[]={53,77,74,76,49,51,52,78,50,75,35,13,14,36,37,38,10,11,12,34,65,42,43,41,67,66,64,40,39,68,30,29,9,8,6,31,5,32,33,7,25,0,1,28,4,3,24,2,27,26,46,44,69,72,47,45,71,73,48,70,22,23,20,21,60,61,59,19,62,63,18,17,56,55,16,57,58,54}; 

	char[] strtemp = new char[30] ;//

	String str;//pay attention!!


	public createTable1(MoteIF moteIF,int usbnumstatic) {

		this.moteIF = moteIF;

		this.moteIF.registerListener(new PrintfMsg(), this);

		this.USBnumStatic=usbnumstatic;
	}
	public createTable1(){
	
	}


	public  String char2String(char[] c){

		StringBuffer sb = new StringBuffer();

		for (int i = 0; i < c.length; i++) {

			sb = sb.append(c[i]);

		}
		//	System.out.println(sb);

		return sb.toString();
	}


	public  void create(int i)
	{
		SimpleDateFormat formater = new SimpleDateFormat("yyyy-MM-dd-hh:mm:ss");
		String curtime=formater.format(new java.util.Date());
		String driverName="com.mysql.jdbc.Driver";
		String userName="root";
		String userPasswd="111533";
		String dbName="myfirst";
		String tableName="myfirst";
		String url="jdbc:mysql://localhost/"+dbName+"?user="+userName+"&password="+userPasswd;
		try{
		Class.forName("com.mysql.jdbc.Driver").newInstance();
		Connection connection=DriverManager.getConnection(url);
		Statement statement = connection.createStatement();
	//	String sql="SELECT * FROM "+tableName;
	//		String sql = "INSERT INTO sensor"+USBnumStatic+" (usbnum,hum,tem,light,time) VALUES ( "+USBnumStatic+", "+hum+", "+tem+", "+light+",  '"+curtime+"');"; 
		String sql="create table sensor"+i+" (id int(7) PRIMARY KEY auto_increment,usbnum int,hum int,tem int,light int,time char(30));";
		/*
	        PreparedStatement preStmt = connection.prepareStatement(sql);
		preStmt.setString(1,USBnumStatic);
	        preStmt.setString(2,USBnumStatic);
		preStmt.setString(3,USBnumStatic);
		*/
		statement.executeUpdate(sql);
	
	//	ResultSetMetaData rmeta = rs.getMetaData();
	//	int numColumns=rmeta.getColumnCount();
	//	out.print("id");
	//	out.print("|");
	//	out.print("name");
	//	out.print("<br>");
	//	while(rs.next()) {
	//		out.print(rs.getString(1)+" ");
	//		out.print("|");
	//		out.print(rs.getString(2)+" ");
	//		out.print("<br>");
	//	}
	//	out.print("<br>");
	//	out.print("Hello Luo!");
	//	rs.close();
		statement.close();
		connection.close();}catch(Exception e)
		{
			System.err.println(e.getClass().getName()+":"+e.getMessage());
			System.exit(0);
		}
	}



		public void messageReceived(int to, Message message) {
			PrintfMsg msg = (PrintfMsg)message;
			for(int i=0; i<PrintfMsg.totalSize_buffer(); i++) {
				char nextChar = (char)(msg.getElement_buffer(i));
				if(nextChar != 0){
					//   System.out.print(nextChar);
					strtemp[i]=nextChar;
				}
			}
			// str=strtemp.toString();
			str = char2String(strtemp);
			//		System.out.println(str+"!");
			//	System.out.print("\n");
			String str1[]= str.split("@");

			String a=str1[0];
			//	Float	hum1=Float.parseFloat(a)*0.0367f-2.0468f;
			//	if (hum1>100) hum1=100;		

			String b=str1[1];
			//      Float       tem1=Float.parseFloat(b)/10-400;


			String c=str1[2];
			//    Float  light1=Float.parseFloat(c);
//			insertDB(a,b,c);
			//	  insertDB("12","34","56");
			//	System.out.println(a+" "+b+" "+c);   	
			//		System.out.println(hum1+" "+tem1+ " "+light1+" ");

		}

		private static void usage() {
			System.err.println("usage: PrintfClient [-comm <source>]");
		}
		public  void mainfunction(String args1,String args2) throws Exception {
			String source = null;
			int USBnum=0;
			//	if (args.length == 2) {
			if (!args1.equals("-comm")) {
				usage();
				System.exit(1);
			}
			source = args2;
			if(source.charAt(19)!=':')
			{
				USBnum+=source.charAt(19)-'0';
				USBnum+=(source.charAt(18)-'0')*10;
			}else
			{
				USBnum=source.charAt(18)-'0';
			}
			//	USBnumStatic=USBnum;
			//	}

			PhoenixSource phoenix;
			if (source == null) {
				phoenix = BuildSource.makePhoenix(PrintStreamMessenger.err);
			}
			else {
				phoenix = BuildSource.makePhoenix(source, PrintStreamMessenger.err);
			}
			System.out.print(phoenix);
			MoteIF mif = new MoteIF(phoenix);
			PrintLuo6 client = new PrintLuo6(mif,USBnum);
		}
		public static void main(String[] args) throws Exception {
		/*	String source = null;
			int USBnum=0;
			if (args.length == 2) {
				if (!args[0].equals("-comm")) {
					usage();
					System.exit(1);
				}
				source = args[1];
				if(source.charAt(19)!=':')
				{
					USBnum+=source.charAt(19)-'0';
					USBnum+=(source.charAt(18)-'0')*10;
				}else
				{
					USBnum=source.charAt(18)-'0';
				}
				//	USBnumStatic=USBnum;
			}

			PhoenixSource phoenix;
			if (source == null) {
				phoenix = BuildSource.makePhoenix(PrintStreamMessenger.err);
			}
			else {
				phoenix = BuildSource.makePhoenix(source, PrintStreamMessenger.err);
			}
			System.out.print(phoenix);
			MoteIF mif = new MoteIF(phoenix);*/

			createTable1 client = new createTable1();
			for(int i=0;i<80;i++)
				client.create(i);
		}

}
